// 2013-9-11下午11:02:45  net.betou.trade.main.manager.role.SystemRoleMng.java

package net.betou.trade.main.manager.role;

import java.util.List;
import java.util.Set;

import net.betou.trade.entity.main.AgentAndAdmins;
import net.betou.trade.entity.main.Role;

/**
 * 
 * @author 叶装装
 */
public interface SystemRoleMng{

	/**
	 * 查找列表
	 * @param admin
	 * @param searchProperty
	 * @param searchValue
	 * @param orderProperty
	 * @param orderDirection
	 * @return
	 */
	public List< Role > list( AgentAndAdmins admin, String searchProperty, String searchValue, String orderProperty, String orderDirection );
	
	/**
	 * 添加系统管理员时读取的角色列表
	 * @param admin
	 * @return
	 */
	public List< Role > listToAdmin( AgentAndAdmins admin );
	
	/**
	 * 查找默认角色，机构或者代理商
	 * @return
	 */
	public List< Role > listByIdentity( String identity );
	
	/**
	 * 查找系统角色分组
	 * @param id
	 * @return
	 */
	public Role findRole( Integer id );
	
	/**
	 * 保存
	 * @param bean
	 * @param perms
	 * @return
	 */
	public Role save( Role bean, Set< String > perms );

	
	/**
	 * 更新
	 * @version 1.0
	 * @param bean
	 * @param perms
	 * @return
	 */
	public Role update( String description, Integer level, String name, Role bean, Set< String > perms );
	
	/**
	 * 更新
	 * @version 1.1
	 * @param allowInit
	 * @param description
	 * @param level
	 * @param name
	 * @param bean
	 * @param perms
	 * @return
	 */
	public Role update( Boolean allowInit, String description, Integer level, String name, Role bean, Set< String > perms );
	
	/**
	 * 更新
	 * @param perms
	 * @return
	 */
	public Role update( Role bean, Set< String > perms );
	
	/**
	 * 批量删除
	 * @param ids
	 * @return
	 */
	public Role [ ] deleteByIds( Integer [ ] ids );
	
	/**
	 * 查找管理员创建的角色
	 * @param adminIds
	 * @return
	 */
	public Role [] findListByAdminIds ( Integer [ ] adminIds );
	
}
